Network based diagnostic system and method for programmable hardware

ABSTRACT

A system and method for diagnosing an electronic device remotely using a network is provided. The electronic device includes one or more programmable logic devices that are configurable. A diagnostic microcontroller functions to communicate to the programmable logic devices and to communicate to the network. To diagnose the electronic device, communication is established to the network and to a diagnostic/repair center. The diagnostic/repair center selects diagnostic commands and transmits them to the electronic device. The diagnostic microcontroller initiates the diagnostic commands on the one or more programmable logic devices to test their configuration and/or functionality. Test results are collected and transmitted back to the diagnostic/repair center for analysis. Based on the analysis, if appropriate, reconfiguration commands are sent to reconfigure the programmable logic device to correct identified errors.

FIELD OF THE INVENTION

The invention relates generally to diagnostic and repair systems. Itwill be appreciated that the invention finds particular application to asystem and method for diagnosing and reconfiguring programmable logicdevices within a remote electronic device over a network.

BACKGROUND OF THE INVENTION

A programmable logic device is a digital integrated circuit capable ofbeing programmed after its manufacture to provide a variety of differentlogic functions. Examples include a programmable logic device (PLD) anda field programmable gate array (FPGA). A PLD generally includes ‘AND’gates, ‘OR’ gates, and Input/Output buffers, and functions differentlydepending on how it is programmed. An FPGA includes a gate array oflogic elements (or macrocells), either gates or lookup table RAMs,flip-flops and programmable interconnect wiring. Typical FPGAs arereprogrammable since their logic functions and interconnects are definedby RAM cells. While a typical PLD may contain hundreds of gates, an FPGAmay contain tens of thousands of logic elements.

Programming a PLD or FPGA is achieved using on-chip fuses, EPROM (UVerasable programmable read-only memory) circuits, EEPROM (electricallyerasable programmable read-only memory) circuits, and RAM (random accessmemory) circuits which programmably create data paths and logicfunctions within the device that are specific to a user's design.

State of the art PLDs make use of one or more non-volatile memory cellarrays (e.g. EPROM, EEPROM, Flash EPROM, or Flash EEPROM) so that theycan retain their configuration memory during power-down. Typically,these arrays are erasable, thereby allowing the desired functionality ofthe PLD to be re-programmed many times. This programmability makes a PLDfamily a flexible and powerful tool for a large number of uniqueapplications where a common PLD is employed and only the chip's internalprogramming is varied.

Programmable logic devices are common in many electronic devices such ascellular phones, personal digital assistants, network switchingequipment, etc. Although the PLDs are easily configured, it is difficultto diagnose and reconfigure them once they are embedded in theelectronic device and in a user's possession. To perform a diagnostictest involves transporting the device to a repair center or having atechnician make an on-site test. This is time consuming for the user andpotentially expensive.

The present invention provides a new and unique system and method fordiagnosing programmable logic devices that cures the above-referencedproblems and others.

SUMMARY OF THE INVENTION

According to one embodiment of the present invention, a diagnosticdevice for diagnosing a programmable logic device that is embeddedwithin an electronic system is provided. The diagnostic device includesan access controller that is configured to be embedded within theelectronic device and that communicates to the programmable logic devicetherein. A diagnostic control module is configured to be embedded withinthe electronic system and transmits diagnostic signals via the accesscontroller to the programmable logic device where the diagnostic signalsare received from a network in response to a diagnostic request. Thediagnostic control module receives output signals generated by theprogrammable logic device in response to the diagnostic signals and theoutput signals serve to diagnose the programmable logic device.

In accordance with a more limited aspect of the present invention, theaccess controller includes logic for communicating to the programmablelogic device to control boundary scan logic within the programmablelogic device.

In accordance with a more limited aspect of the present invention, thesystem includes a reconfiguration control module in communication withthe access controller. The reconfiguration control module reconfiguresthe programmable logic device based on the output signals generated bythe programmable logic device.

According to another aspect of the present invention, a self-containedelectronic device is provided that includes a plurality of componentsselectively connected to each other to perform selected functions. Theplurality of components include a programmable logic device. Theself-contained electronic device includes a network communicationinterface that communicates to a network and logic for receivingdiagnostic commands from a remote diagnostic device in communicationwith the network communication interface. A diagnostic controllerembedded within the self-contained electronic device is in communicationwith the programmable logic device and includes a diagnostic controlmodule that performs a diagnostic test on the programmable logic devicein accordance with the diagnostic commands.

According to another aspect of the present invention, a method ofdiagnosing an electronic device is provided. The method includescommunicating over a communications network to a remote electronicsystem that includes an embedded diagnostic/reconfiguration controllerfor performing diagnostic tests within the electronic system. Theelectronic system also includes a programmable logic device. Diagnosticcommands are transmitted to the remote electronic system that cause thediagnostic/reconfiguration controller to perform diagnostic tests on theprogrammable logic device. The programmable logic device generatesoutput signals in response to the diagnostic commands. The outputsignals are then received from the remote electronic system over thenetwork. The output signals are then analyzed to determine if errorsexist in the programmable logic device.

According to a more limited aspect of the present invention, thediagnostic commands include commands that are compliant with IEEEStandard 1532.

One advantage of the present invention is that an electronic device thatis installed in the field or in a user's possession can be diagnosedremotely using a network.

Another advantage of the present invention is that an electronic devicecan have its programmable logic devices reconfigured from a remotediagnostic center using a network based on results from diagnostictests.

Still further advantages of the present invention will become apparentto those of ordinary skill in the art upon reading and understanding thefollowing detailed description of the preferred embodiments.

BRIEF DESCRIPTION OF THE DRAWINGS

In the accompanying drawings which are incorporated in and constitute apart of the specification, embodiments of the invention are illustrated,which, together with a general description of the invention given above,and the detailed description given below, serve to example theprinciples of this invention.

FIG. 1 is an exemplary system diagram in accordance with the presentinvention;

FIG. 2 is an exemplary component diagram of an electronic device inaccordance with the present invention;

FIG. 3 is an exemplary component diagram of a diagnostic microcontrollershown in FIG. 2 in accordance with the present invention;

FIG. 4 is an exemplary process diagram of a remote diagnostic procedurein accordance with the present invention;

FIG. 5 is an exemplary component diagram of FIG. 2 representing adiagnostic test performed;

FIG. 6 is an exemplary component diagram of FIG. 2 representing anotherdiagnostic test performed; and

FIG. 7 is an exemplary state diagram of a programmable logic device thatis compliant with IEEE Standard 1532.

DETAILED DESCRIPTION OF ILLUSTRATED EMBODIMENT

The following includes definitions of exemplary terms used throughoutthe disclosure. Both singular and plural forms of all terms fall withineach meaning:

“Signals”, as used herein, includes but is not limited to one or moresignals, a bit stream, an algorithm, a routine, a program or the like.The term “commands” is synonymous with “signals.”

“Software”, as used herein, includes but is not limited to one or moreinstructions, routines, algorithms, modules or programs includingseparate applications or from dynamically linked libraries forperforming functions as described herein. Software may also beimplemented in various forms such as a servlet, applet or other type ofapplication.

“Logic”, as used herein, includes but is not limited to hardware,software and/or combinations of both to perform a function.

“Network”, as used herein, includes but is not limited to the internet,intranets, Wide Area Networks (WANs), Local Area Networks (LANs), andtransducer links such as those using Modulator-Demodulators (modems).

“Internet”, as used herein, includes a wide area data communicationsnetwork, typically accessible by any user having appropriate software.

“Intranet”, as used herein, includes a data communications networksimilar to an internet but typically having access restricted to aspecific group of individuals, organizations, or computers.

Illustrated in FIG. 1 is an exemplary overall system for diagnosing anelectronic device 100 installed in the field or in a user's possessionin accordance with the present invention. The electronic device 100includes an embedded diagnostic microcontroller 105 that is configuredto access and communicate to one or more programmable logic devices 110within the electronic device 100. The microcontroller 105 includes logicthat establishes and controls communication to a communication network115. With an established connection to the network 115, communication isestablished with a diagnostic/repair center 120 and a diagnostic requestis made.

After receiving the diagnostic request, the diagnostic/repair center 120transmits diagnostic commands 125 to the microcontroller 105 from aremote location. The diagnostic microcontroller 105 then initiatesdiagnostic tests on the programmable logic device 110, or othercomponents, to test its functionality. Results from the tests arecollected and transmitted back to the diagnostic/repair center 120. Ananalysis routine 130 analyzes the results and determines if theprogrammable logic device 110 is functioning properly. If errors arefound, corrective actions are taken which may include reconfiguring theprogrammable logic device 110 based on reconfiguration commands 135transmitted by the diagnostic/repair center 120.

In one embodiment, the electronic device 100 is a self-contained productthat is built with the features of the present invention therebyconverting it to a remotely diagnosable/reconfigurable product.Exemplary electronic devices 100 include consumer products such asmobile telephones, wired telephones, pagers, personal digitalassistants, computers, and the like. They also include larger systems,typically non-consumer products, such as communication switches,routers, gateways, firewalls, digital cellular base stations, linecards, PBX's, radio equipment, satellites and any other device thatincludes programmable logic devices.

The diagnostic/repair center 120 is a technical service computer centerwith one or more computers operated by technicians to facilitatediagnostics and repairs of a remote electronic device 100. It will beappreciated that the diagnostic/repair center can also be fullyautomated if desired. The diagnostic commands 125 of thediagnostic/repair center 120 include, for example, a database of testvectors, test signals, test algorithms and the like. In general, theyare signals to be sent to the programmable logic device 110 for probingand/or stimulating it to generate output signals representative of aconfiguration and functionality of the programmable logic device 110.One or more diagnostic commands are associated for a selected electronicdevice 100 based on its type, e.g. manufacturer, model, serial number,etc. and/or based on the type of programmable logic devices containedwithin the electronic device. The technician can also generate customdiagnostic commands to accommodate a given situation.

The diagnostic commands 125, for example, can include any well knownbuilt-in self-test (BIST) based strategies for testing individualdevices. This involves realizing test logic in the programmable logicdevice capable of verifying the correct functionality of the elementswithin the logic device. Other types of diagnostic commands includereconfiguration signals that configure one section of the programmablelogic device to be responsible for the generation and application of atest stimulus to another section of the device under test. Other testsinclude using the INTEST instruction and the boundary-scan register inthe logic device, or the RUNBIST instruction, test logic and aboundary-scan register. These and other tests are well known in the art.

Illustrated in FIG. 2 is an exemplary component diagram of theelectronic device 100 that is diagnosable and repairable over acommunication network according to one embodiment of the presentinvention. Depending on the type of electronic device, it may include aplurality of components 205 that perform desired functions of thedevice. The electronic device 100 also includes one or more programmablelogic devices (PLD), for example, PLD's 210, 215 and 220. As is known inthe art, a programmable logic device is any device having configurablelogic linked together via programmable interconnect. Memory cellscontrol and define functions that the logic performs and how thefunctions are interconnected. For exemplary purposes, the programmablelogic devices in the illustrated embodiment include FPGA's 210 and 220(field programmable gate arrays) and a CPLD 215 (complex programmablelogic device). Of course, other programmable logic devices may be usedand may be configured and connected in any desired manner.

With further reference to FIG. 2, the diagnostic microcontroller 105communicates to the network 115 through an external communication port225 formed on the exterior of the electronic device 100 through a wireconnection. It will be appreciated that wireless communicationcomponents can also be used in addition to or in place of the port 225as is known in the art. To communicate to components within theelectronic device 100, an internal communications bus 230 is connectedto selected components, for example, to the programmable logic devices210, 215 and 220. This connectivity and structure is designed when theelectronic device is built. In this manner, the diagnosticmicrocontroller 105 has access to the programmable logic devices toperform diagnostic tests and, if necessary, reconfigure their logic. Ofcourse, communications bus 230 can have any number of signal lines.

In one embodiment, the diagnostic microcontroller 125, thecommunications bus 230, and the programmable logic devices 210, 215 and220 comply with IEEE Standard 1532. IEEE Standard 1532 describes aseries of mandatory and optional programming instructions and associateddata registers that define a standard methodology for accessing andconfiguring programmable devices. By using 1532-compliant devices, theconfiguration of the device, or chains of devices, is well definedfunctionally, behaviorally and algorithmically which simplifiescommunications to the device. Being compliant with IEEE Standard 1532also requires compliance with the IEEE Standard 1149.1 communicationprotocol (commonly known as the boundary-scan standard or JTAG). Detailsof IEEE Standards can be found from the Internet atwww.standards.ieee.org. Alternately, other standards may be used as isknown in the art or as they become available. If no standard is used, acustom methodology would be configured and programmed for a specificelectronic device to perform the communications to programmable logicdevices.

With further reference to FIG. 2, an active configuration memory 235stores current configuration settings for the programmable logic devices210, 215 and 220 connected to the diagnostic microcontroller 105. Astand-by configuration memory 240 is provided to store new configurationsettings that are to replace some or all of the configuration settingsin the active configuration memory 235 in response to reconfigurationinstructions. This will be described in greater detail below.

The memories 235 and 240 are they type that do not lose their contentswhen power is turned off. Exemplary memories include flash memory, othernon-volatile memory types, a memory card, or the like. It will beappreciated that the active and stand-by configuration memories may beinternal or external to the diagnostic microcontroller 105. The twomemories can also be implemented as separate spaces or partitions withina single memory device. Their contents may be swapped, for example, bychanging active pointers or addresses.

Illustrated in FIG. 3 is an exemplary embodiment of the diagnosticmicrocontroller 105 in accordance with the present invention. Thediagnostic microcontroller 125 is, for example, a microprocessoroperating under software control. One example is an 8-bit 8051microprocessor that is an off-the-self product configured to have logicand programmed to perform functions including communicating with thenetwork 115, communicating to components within the electronic device100, controlling diagnostic tests, and reconfiguring programmable logicdevices based on the diagnostic tests. Alternately, the microcontroller125 is implemented using discrete logic and circuitry for performingthese functions.

With further reference to FIG. 3, for communicating with the network115, the diagnostic microcontroller 125 includes a network communicationinterface 300 in communication with the external communication port 225of the electronic device 100. The network communication interface 300controls communication between the microcontroller 105 and the network115. The interface 300 includes, for example, logic for establishing acommunication link and logic for transmitting and receiving signals inaccordance with the type of network 115 being connected to and itscommunication protocol. Once communication with the network isestablished, the communication interface 300 communicates with thediagnostic control center 120 also connected to the network 115.

It will be appreciated that certain electronic devices 100 includestandard network communication features. For example, a cellular phonewith Internet access. In this case, the diagnostic microcontroller 105can be modified to use those standard network communication featuresrather than its network communication interface 300 or even not includethe interface 300.

For communicating with components within the electronic device 100, thediagnostic microcontroller 125 includes an access control module 305.The access control module 305 includes logic for communicating to andfrom the internal communication bus 230 and the programmable logicdevices 210, 215 and 220 connected thereto. For example, implementingIEEE Standard 1532, 4–5 pins on the diagnostic microcontroller 105 areconnected to corresponding signal lines on the internal communicationbus 230. On the programmable logic device, the bus 230 is connected toat least configuration and test ports as described by IEEE Std 1532 and1149.1.

In response to instructions from the diagnostic microcontroller 105, theaccess control module 305 transmits diagnostic signals to one or more ofprogrammable logic devices 210, 215, and 220 to test their functionalityand collects result signals outputted from the programmable logicdevices. When implementing compliance with IEEE Standard 1149.1, whichmay or may not also include implementing IEEE Standard 1532, the accesscontrol module 305 includes logic for communicating to the programmablelogic device to control the boundary scan logic.

With further reference to FIG. 3, the diagnostic microcontroller 105includes a diagnostic/reconfiguration control module 310 which includesdiagnostic control software 315 and reconfiguration control software320. The diagnostic control software 315 includes logic that controlsdiagnostic processes performed on selected programmable logic devices.The reconfiguration control software 320 includes logic that controlsreconfiguration processes performed on selected programmable logicdevices. These processes are described in greater detail below.

Illustrated in FIG. 4 is an overall exemplary methodology of the systemshown in FIG. 1 for diagnosing a remote electronic device 100, and ifappropriate, reconfiguring selected programmable logic devices 110therein. As illustrated, the blocks represent functions, actions and/orevents performed therein. It will be appreciated that electronic andsoftware applications involve dynamic and flexible processes such thatthe illustrated blocks can be performed in other sequences differentthan the one shown.

For the following exemplary description, an exemplary electronic device100 is a personal digital assistant (PDA) and the network 115 is theInternet. References are made to FIGS. 1 and 4. Suppose a user has a PDA100 that seems to be functioning incorrectly. The PDA 100 includes thediagnostic microcontroller 105 and associated communication architectureand features as described above. To initiate a remote diagnosis of thePDA, a connection is established to the network 115 using a direct lineor wireless link (block 400). Communication is then established with thediagnostic/repair center 120 (block 405) which identifies the PDA, forexample, by model number, serial number, manufacturer, etc. Based on theidentification, diagnostic commands 125 are retrieved and transmitted tothe diagnostic microcontroller 105 (block 410).

The diagnostic control software 315 of the microcontroller 105 receivesthe diagnostic commands via the network communication interface 300. Thediagnostic commands are then initiated to test one or more targetprogrammable logic devices 210, 215, and 220 (block 415). This includestransmitting the diagnostic commands onto the internal communication bus230 where they are inputted to a selected target device being tested. Inresponse, the target programmable logic device generates one or moreoutput signals. The output signals are captured and collected (block420) from the internal communication bus 230 by the diagnostic controlsoftware 315.

With further reference to FIGS. 1 and 4, the collected output signalsare transmitted to the diagnostic/repair center 120 (block 425). Theanalysis routine 130 analyzes the output signals to determine if theprogrammable logic device under test is configured properly and/orfunctioning properly (block 430). The analysis evaluates the behavior ofthe target device under test represented by the output signals, anddetermines if the behavior is correct, reflective of a known error, orreflective of an unknown error (block 435). For example, this isperformed by comparing the output signals received to a correct set ofsignals that are expected from corresponding input signals (e.g. fromthe diagnostic commands used).

The analysis may also include comparing the output signals with apredetermined set of output signals that are the result of known errors.In other words, known errors in a configuration will have a certainbehavior and produce a certain set of output signals for a given set ofinput signals. Thus, if the error is known in advance, it can bedetected in a remote electronic device by comparing its output signalsand/or behavior to the known set of error output signals. The evaluationmay include input from a technician at the diagnostic/repair center 120assisting with the diagnosis.

If a hardware error is found that is a known problem and/or if the erroris repairable by reconfiguration, reconfiguration commands 135 aretransmitted back to the diagnostic microcontroller 105 (block 440). Forexample, the reconfiguration commands include a configuration bitstream. The reconfiguration commands 135 may be a predetermined set ofreconfiguration signals associated with a known problem, or might begenerated by the technician looking at the diagnostic output or bymodifying predetermined reconfiguration signals for a given situation.The commands 135 can also be driven by the analysis routine 130evaluating the diagnostic output that determines the next course ofaction.

Once the reconfiguration commands are received, the reconfigurationcontrol software 320 initiates reconfiguration of the targetprogrammable logic device in accordance with known configurationprocedures for logic devices (block 445). As a safety measure, thereconfiguration commands are loaded in the stand-by configuration memory240 and verification is made that the reconfiguration commands werefully and properly received from the network. After verification, thecommands are moved to the active configuration memory 235.

After reconfiguration, verification is made to ensure thereconfiguration was correctly performed (block 450). If no furthererrors were found, the communication with the network is ended (block455).

If a software error is found during the analysis of output signals atblock 435, a software update is transmitted to the diagnosticmicrocontroller 105. Software errors may include defective or outdatedsystem software and/or application software that is running on theelectronic device. This presumes that a software update is available.The software update is loaded by the diagnostic microcontroller 105 intothe electronic device 100, re-booted, and the diagnostic commands arere-run to determine if the errors were corrected.

If an error is found that is not repairable by the diagnostic/repaircenter 120, a message is sent indicating that the electronic device 105should be returned for repair. This may include transmitting a killsignal that disables the electronic device 100 so that the user isforced to return the device.

In some cases, the analysis routine 130 and or technician will concludethat the diagnostic output signals received are indeterminate andadditional diagnostics are required. Here, reconfiguration commands 135are used to reconfigure the target device under test in order to runadditional diagnostics to determine what caused the original outputsignals. For example, some or all of the device under test is configuredsuch that it has an expected behavior. Then, tests are run to determineif it behaves properly. By repeating this, portions of logic can beisolated and tested to identify problems.

Illustrated in FIG. 5 is an exemplary representation of the electronicdevice 100 shown in FIG. 2 having diagnostic commands performed therein.In particular, FIG. 5 represents an INTEST and EXTEST performed therein.These tests are based on the programmable logic devices 210 and 215having boundary-scan logic of IEEE Std 1149.1. In this example,diagnostic commands received from the diagnostic/repair center 120include instructions to activate INTEST and EXTEST, respectively, todiagnose the associated devices. INTEST tests internal logic of a deviceand EXTEST tests the logic of an adjacent/neighboring device or systemlogic. These tests can be performed independent of each other. During anEXTEST, diagnostic commands include boundary scan signals that cause aprogrammable logic device to drive test stimulus signals to one or moreneighboring devices.

Illustrated in FIG. 6 is another exemplary representation of theelectronic device 100 shown in FIG. 2 having diagnostic commandsperformed therein. In particular, diagnostic commands reconfigure aselected programmable logic device 210 to act as a test stimulus devicethat generates and drives test signals for input to one or moreneighboring devices under test 215. The diagnostic commands may alsoreconfigure another programmable logic device to act as a test resultcapture device 220 to capture output from the device under test 215. Inthis sense, the diagnostic commands are reconfiguration commands thatare processed by reconfiguration logic within the reconfigurationcontrol software 320. Devices 210 and 220 are, for example, IEEE Std1532 compliant devices and the device under test 215 can be any type,including a non-programmable logic device, for example, an ASIC chip.

In the example of FIG. 6, the test stimulus device 210 generates teststimulus signals that are inputted to the device under test 215. Inresponse thereto, the device under test generates output signals. Thetest result capture device 220 then captures the output signals andtransmits them to the diagnostic microcontroller 105. The output signalsare then transmitted to the diagnostic/repair center 120 for analysis.If the device under test 215 is non-configurable, diagnostic results canbe sent back but no repairs will be made.

By leveraging programmability and the possibility of performing theprogramming via the four (4) wire 1149.1 Test Access Port (TAP), systemtestability can be enhanced. It is similar to taking typical singledevice built-in self-test (BIST) approach and breaking it into itsconstituent parts then reassembling those parts in a system. This isaccomplished through the creation of such standard test constructs asmultiple input shift registers, linear feedback shift registers or othersignature collection and calculation registers.

In addition, random or deterministic test vector generators andcontrolled frequency oscillators can be realized. These represent basicbuilding blocks of system test. So applying the single device test andbasic BIST mechanisms allows incorporation of BIST into the systemwithout paying additional hardware costs. The 1532 compliant devices canbe utilized for other mission functions after the BIST operations arecomplete. In addition, the BIST functionality can be recovered byreprogramming the 1532 devices.

The Xilinx family of FPGAs incorporates two user-available boundary-scaninstructions. These can be utilized by system designers to implementspecial purpose boundary-scan triggered and controlled functionality.These two instructions (USER1 and USER2) are natural building mechanismsfor the operation of the system BIST functions.

The presence of boundary-scan logic on any of the devices within theelectronic device 100 in general also provides another possible resourcethat can be used. For instance, the SAMPLE instruction can be used tosample system signals at arbitrary times without interfering with theoperation of the system BIST logic. In addition, the HIGHZ, CLAMP andEXTEST instructions could be used to drive and hold arbitrary values onsystem control pins and disable or enable system busses.

The following is a description of the hardware and functional elementsin an IEEE Std 1532 compliant device that can be used for the presentinvention. IEEE Std 1532 is built on the foundation of IEEE Std 1149.1.This means that a 1532 compliant device must first be 1149.1 compliant.Upon that foundation, 1532 requires that the programmable device haswell-defined externally observable behavior before, during and after theconfiguration process. To that end, the standard mandates how theconfigurable pins of the programmable device will behave at all times.In addition, it specifies when and how these pins will take on theirprogrammed state.

System I/O pins of a 1532 compliant device have behavior summarized asfollows:

-   -   If an In-System Configurable (ISC) instruction is loaded, the        system I/O pins take on either HIGHZ-like or CLAMP-like behavior        according to the design of the device.    -   If an IEEE Std 1149.1 test mode instruction (EXTEST, INTEST,        RUNBIST, CLAMP, HIGHZ) is loaded, the system I/O pins are        controlled as defined by that standard.

If an IEEE Std 1149.1 non-test mode instruction (BYPASS, IDCODE,USERCODE, SAMPLE, PRELOAD) is loaded in the instruction register, thesystem I/O pin behavior is determined what ISC operation was beingperformed when the instruction was loaded.

When an IEEE Std 1149.1 non-test mode instruction is loaded in an ISCdevice, there is a choice of behaviors for the system I/O pins. Theseare summarized as follows:

-   -   If the device is in the unprogrammed state, the system I/O pins        are disabled.    -   If the device is performing an ISC operation, the system I/O        pins take on either HIGHZ-like or CLAMP-like behavior according        to the design of the device.    -   If the device is in the programmed and operational state, the        system I/O pins operate as determined by the programming of the        device.

A 1532 compliant device may have both ISC pins and fixed pins. In thiscase, the ISC pins behave as described above but the fixed pins behaveaccording to the function of the core to which they are connected.

With reference to FIG. 7, an illustration of four modal states ofoperation for an IEEE Std 1532 device are shown including the conditionsfor transition between the states. The states and transitions of atypical In-System Configurable (ISC) device are well defined by thestandard. The standard defines four system modal states that correspondto the described states. The modal states include:

-   (1) Unprogrammed: In this system modal state, an ISC programmable    logic device may be blank or incompletely programmed.-   (2) ISC Accessed: In this system modal state, ISC instructions may    be used to read, write, verify, protect or erase the device.-   (3) ISC Complete: This system modal state exists so that an external    algorithm can control transitions to the Unprogrammed or operational    system modal states after ISC operations are complete.-   (4) Operational: In this system modal state, the device is ready for    its “operational” mode defined by its programming.

In order to configure a 1532 compliant device, a sequence of ISCinstructions and data are loaded into the device. ISC operations areexecuted when the Test Access Port (TAP) controller is transitioned to aRun-Test/Idle State. In a simple implementation, an exemplary sequenceof operations includes:

-   -   1. Load ISC_ENABLE instruction.    -   2. Load data associated with ISC_ENABLE instruction.    -   3. Transition to and stay in the Run-Test/Idle TAP controller        state for the prescribed amount of time.

This completes the device's preparation to begin performing ISCoperations. The device's programmable system pins take on either aHIGHZ'ed or CLAMP'ed state.

-   -   4. Load the ISC_ERASE instruction.    -   5. Load data associated with the ISC_ERASE instruction.    -   6. Transition to and stay in the Run-Test/Idle TAP controller        state for the prescribed amount of time.

The above sequence erases the programmed contents of the device'sconfiguration memory. Additional iterations through steps 5 and 6 may berequired if the device has multiple sectors to erase.

-   -   7. Load the ISC_PROGRAM instruction.    -   8. Load the configuration data associated with the ISC_PROGRAM        instruction.    -   9. Transition to and stay in the Run-Test/Idle TAP controller        state for the prescribed amount of time.    -   10. Repeats steps 8 and 9 until the device's configuration        memory has been completely programmed.

The above sequence loads the programmable device's configuration memorywith the designed pattern.

-   -   11. Load the ISC_DISABLE instruction.    -   12. Transition to and stay in the Run-Test/Idle TAP controller        state for the prescribed amount of time.

The above sequence marks the completion of the loading of the programpattern in the device's configuration memory. When the ISC_DISABLEinstruction is displaced from the device's instruction register, thedevice will be operational. To accomplish this, the next step may beexecuted, the device should be operational and the system pins take ontheir programmed behaviors:

-   -   13. Load the BYPASS instruction.

With the present invention, electronic devices having programmable logiccan be diagnosed and possibly repaired remotely using a networkconnection. This eliminates having to physically transport theelectronic device to a repair center or having a technician make anon-site visit.

It will be appreciated that aspects of the present invention that may beimplemented in software can be implemented in other ways than theillustrated embodiments. For example, the software may be implementedusing various programming approaches such as procedural, object orientedor artificial intelligence techniques.

While the present invention has been illustrated by the description ofembodiments thereof, and while the embodiments have been described inconsiderable detail, it is not the intention of the applicants torestrict or in any way limit the scope of the appended claims to suchdetail. Additional advantages and modifications will readily appear tothose skilled in the art.

For example, the diagnostic microcontroller 105 can include analysiscapabilities to analyze diagnostic output results. In anotherembodiment, the diagnostic microcontroller 105 and associatedcommunication architecture may be formed as a device separate from theelectronic device rather than being embedded therein. In this manner,the present invention may be externally connected to pre-existingelectronic devices. Another embodiment includes reconfiguring aprogrammable logic device within the electronic device to act as thediagnostic microcontroller. Therefore, the invention, in its broaderaspects, is not limited to the specific details, the representativeapparatus, and illustrative examples shown and described. Accordingly,departures may be made from such details without departing from thespirit or scope of the applicant's general inventive concept.

1. A diagnostic device for diagnosing a programmable logic device thatis embedded within an electronic system, the diagnostic devicecomprising: an access controller configured to be embedded within anelectronic system and for communicating to a programmable logic deviceembedded therein; a diagnostic control module configured to be embeddedwithin an electronic system and transmitting diagnostic signals via theaccess controller to the programmable logic device where the diagnosticsignals are received from a network in response to a diagnostic request,the diagnostic control module including logic for collecting outputsignals generated by the programmable logic device in response to thediagnostic signals, and the output signals serving to diagnose theprogrammable logic device; and a reconfiguration control module coupledto the access controller for reconfiguring the programmable logic devicebased on output signals generated by the programmable logic device. 2.The diagnostic device as set forth in claim 1 wherein the accesscontroller includes logic for communicating to the programmable logicdevice to control boundary scan logic within the programmable logicdevice.
 3. The diagnostic device as set forth in claim 1 wherein thediagnostic signals include signals for performing boundary scan tests.4. The diagnostic device as set forth in claim 1 wherein the diagnosticsignals include boundary scan signals for causing the programmable logicdevice to drive stimulus signals to one or more neighboring deviceswithin the electronic system.
 5. The diagnostic device as set forth inclaim 1 wherein the reconfiguration control module includes logic forreconfiguring the programmable logic device to function as a teststimulus device that generates stimulus signals for testing one or moreneighboring devices.
 6. The self-contained electronic device as setforth in claim 5 wherein the reconfiguration controller further includeslogic for reconfiguring another programmable logic device within theself-contained electronic device to act as a test result capture deviceto capture signals outputted from the one or more neighboring devices inresponse to the test stimulus signals.
 7. The diagnostic device as setforth in claim 1 further including a network communication interface forcommunicating to a network and receiving the diagnostic signalstherefrom, and wherein the diagnostic control module includes logic fortransmitting the output signals to a remote diagnostic device foranalysis via the network communication interface.
 8. The diagnosticdevice as set forth in claim 1 wherein the diagnostic signals arereceived from a remote diagnostic device in communication with thesystem.
 9. The diagnostic device as set forth in claim 1 wherein accesscontroller includes logic for communicating to the programmable logicdevice in compliance with IEEE Standard
 1532. 10. The diagnostic deviceas set forth in claim 1 wherein the diagnostic device is amicroprocessor configured to be embedded within an electronic system.11. The diagnostic device as set forth in claim 1 wherein the diagnosticdevice is a programmable logic device reconfigured within an electronicsystem to include the access controller and the diagnostic controlmodule.
 12. A self-contained electronic device comprising: a pluralityof components selectively connected to each other to perform selectedfunctions, the plurality of components including a programmable logicdevice; a network communication interface for communicating to anetwork; logic for receiving diagnostic commands from a remotediagnostic device in communication with the network communicationinterface; and a diagnostic controller embedded within the electronicdevice and in communication with the programmable logic device, thediagnostic controller including: a diagnostic control module forperforming a diagnostic test on the programmable logic device inaccordance with the diagnostic commands; and a reconfigurationcontroller in communication with the programmable logic device, thereconfiguration controller including logic for reconfiguring theprogrammable logic device based on the diagnostic output signals. 13.The self-contained electronic device as set forth in claim 12 whereinthe diagnostic commands include signals for performing a boundary scantest on the programmable logic device during the diagnostic test. 14.The self-contained electronic device as set forth in claim 12 whereinthe diagnostic controller further includes logic for communicating tothe programmable logic device to control boundary scan logic within theprogrammable logic device.
 15. The self-contained electronic device asset forth in claim 12 wherein the diagnostic controller further includeslogic for communicating to the programmable logic device in accordancewith IEEE Standard
 1532. 16. The self-contained electronic device as setforth in claim 12 wherein the reconfiguration controller furtherincludes logic for reconfiguring the programmable logic device to drivetest stimulus signals to one or more neighboring device within theelectronic device.
 17. The self-contained electronic device as set forthin claim 16 wherein the reconfiguration controller further includeslogic for reconfiguring another programmable logic device within theself-contained electronic device to act as a test result capture deviceto capture signals outputted from the one or more neighboring devices inresponse to the test stimulus signals.
 18. The self-contained electronicdevice as set forth in claim 12 wherein the diagnostic signals includeboundary scan signals for causing the programmable logic device to drivestimulus signals to a neighboring device within the self-containedelectronic device.
 19. The self-contained electronic device as set forthin claim 12 wherein the diagnostic controller includes logic forcollecting diagnostic output signals generated by the programmable logicdevice in response to the diagnostic commands.
 20. The self-containedelectronic device as set forth in claim 12 wherein the diagnosticcontroller is one of a microprocessor and a reconfigured programmablelogic device.
 21. A method of diagnosing an electronic system comprisingthe steps of: communicating over a communications network to a remoteelectronic system that includes an embedded diagnostic/reconfigurationcontroller for performing diagnostic tests within the electronic system,the electronic system further including a programmable logic device thatis configurable; transmitting diagnostic commands to the remoteelectronic system that cause the diagnostic/reconfiguration controllerto perform diagnostic tests on the programmable logic device where theprogrammable logic device generates output signals in response thereto;receiving the output signals from the remote electronic system over thecommunications network; analyzing the output signals to determine iferrors exist in a functionality of the programmable logic device; andtransmitting reconfiguration commands to the remote electronic systemcausing the diagnostic/reconfiguration controller to reconfigure theprogrammable logic device based on the output signals analyzed.
 22. Themethod of diagnosing as set forth in claim 21 wherein the analyzingincludes comparing the output signals to predetermined signals in orderto identify errors in the programmable logic device.
 23. The method ofdiagnosing as set forth in claim 21 further including testing one ormore neighboring devices connected to the programmable logic device bytransmitting reconfiguration commands to the diagnostic/reconfigurationcontroller of the remote electronic system for reconfiguring theprogrammable logic device to drive test stimulus signals to the one ormore neighboring devices.
 24. The method of diagnosing as set forth inclaim 21 wherein the transmitting diagnostic commands includetransmitting boundary scan test signals.
 25. The method of diagnosing asset forth in claim 21 wherein the transmitting diagnostic commandsinclude transmitting commands that are compliant with IEEE Standard1532.
 26. An electronic system, comprising: an electronic device; atleast one programmable logic device (PLD) embedded in the device andincluding programmable memory cells with values that defined a logicfunction implemented by the PLD; a first memory embedded in the deviceand configured with configuration data of the programmable memory cells;a second memory embedded in the device; and a microcontroller embeddedin the device and coupled to the at least one PLD and to the first andsecond memories, the microcontroller including a first interface adaptedfor communication via a network external to the device, and a secondinterface coupled to the at least one PLD and adapted for boundary scaninput and output to and from the PLD, wherein the microcontroller isconfigured to execute first and second software modules, the firstsoftware module adapted to apply input signals to the at least one PLDresponsive to diagnostic control received via the network and transmitoutput signals from the at least one PLD via the network, and the secondsoftware module adapted to store, responsive to reconfiguration controlreceived via the network, configuration data received via the network inthe second memory and reconfigure the PLD with the configuration datareceived via the network.
 27. The system of claim 26, wherein the secondsoftware module is further adapted to reconfigure, responsive toreconfiguration control received via the network, a first set ofconfigurable logic resources of a PLD embedded in the device to functionas a test stimulus signal generator in the device.
 28. The system ofclaim 27, wherein the second software module is further adapted toreconfigure, responsive to reconfiguration control received via thenetwork, a second set of configurable logic resources of a PLD embeddedin the device to capture states of signals input to the second set ofconfigurable logic resources.
 29. A method for testing an electronicdevice, comprising: receiving diagnostic commands and reconfigurationcommands via a network connection at a microcontroller embedded in thedevice; executing a first software module in response to receipt of thediagnostic commands, and in executing the first software module applyinginput signals to at least one PLD embedded in the device andtransmitting output signals from the at least one PLD via the network;storing in a first memory embedded in the device a current configurationdata set consistent with states of programmable memory cells that definea logic function implemented by the at least one PLD; and executing asecond software module in response to receipt of a reconfigurationcommand, and in executing the second software module storingconfiguration data received via the network in a second memory embeddedin the device and reconfiguring the PLD with the configuration datareceived via the network.
 30. The method of claim 29, wherein the inputof signals to the at least one PLD and receipt of output signals fromthe at least one PLD is via a boundary scan interface.
 31. The method ofclaim 30, further comprising, reconfiguring, responsive to areconfiguration command received via the network, a first set ofconfigurable logic resources of a PLD embedded in the device to functionas a test stimulus signal generator in the device.
 32. The system ofclaim 31, further comprising, reconfiguring, responsive to areconfiguration command received via the network, a second set ofconfigurable logic resources of a PLD embedded in the device to capturestates of signals input to the second set of configurable logicresources.